namespace = cr_intimacy

# Context dispatcher. It preserves an established participant where one exists,
# otherwise it introduces an adult courtier who plausibly took part in the work.
character_event = {
	id = cr_intimacy.1
	hide_window = yes
	is_triggered_only = yes
	trigger = { is_adult = yes }

	immediate = {
		# A known family or carousing participant may have been preserved by the
		# calling event. Other contexts select a participant below.
		if = {
			limit = {
				event_target:cr_intimacy_partner = { always = yes }
				NOT = {
					OR = {
						AND = {
							has_character_flag = cr_intimacy_context_family
							event_target:cr_intimacy_partner = {
								cr_valid_intimacy_partner_trigger = yes
								OR = {
									is_married = ROOT
									cr_valid_relative_intimacy_partner_trigger = yes
								}
							}
						}
						AND = {
							has_character_flag = cr_intimacy_context_carousing
							event_target:cr_intimacy_partner = { cr_valid_intimacy_partner_trigger = yes }
						}
					}
				}
			}
			clear_event_target = cr_intimacy_partner
		}

		if = {
			limit = {
				has_character_flag = cr_intimacy_context_family
				NOT = { event_target:cr_intimacy_partner = { always = yes } }
				event_target:cr_wol_family_target = {
					cr_valid_intimacy_partner_trigger = yes
					OR = {
						is_married = ROOT
						cr_valid_relative_intimacy_partner_trigger = yes
					}
				}
			}
			event_target:cr_wol_family_target = { save_event_target_as = cr_intimacy_partner }
		}
		if = {
			limit = {
				has_character_flag = cr_intimacy_context_carousing
				NOT = { event_target:cr_intimacy_partner = { always = yes } }
				event_target:cr_wol_party_invitee = { cr_valid_intimacy_partner_trigger = yes }
			}
			event_target:cr_wol_party_invitee = { save_event_target_as = cr_intimacy_partner }
		}

		if = {
			limit = {
				has_character_flag = cr_intimacy_context_business
				NOT = { event_target:cr_intimacy_partner = { always = yes } }
			}
			random_courtier = {
				limit = { stewardship = 6 cr_valid_intimacy_partner_trigger = yes }
				save_event_target_as = cr_intimacy_partner
			}
		}
		if = {
			limit = {
				has_character_flag = cr_intimacy_context_hunting
				NOT = { event_target:cr_intimacy_partner = { always = yes } }
			}
			random_courtier = {
				limit = { martial = 6 cr_valid_intimacy_partner_trigger = yes }
				save_event_target_as = cr_intimacy_partner
			}
		}
		if = {
			limit = {
				has_character_flag = cr_intimacy_context_war
				NOT = { event_target:cr_intimacy_partner = { always = yes } }
			}
			random_courtier = {
				limit = { martial = 6 cr_valid_intimacy_partner_trigger = yes }
				save_event_target_as = cr_intimacy_partner
			}
		}
		if = {
			limit = {
				has_character_flag = cr_intimacy_context_intrigue
				NOT = { event_target:cr_intimacy_partner = { always = yes } }
			}
			random_courtier = {
				limit = { intrigue = 6 cr_valid_intimacy_partner_trigger = yes }
				save_event_target_as = cr_intimacy_partner
			}
		}
		if = {
			limit = {
				has_character_flag = cr_intimacy_context_seduction
				NOT = { event_target:cr_intimacy_partner = { always = yes } }
			}
			random_courtier = {
				limit = { diplomacy = 6 cr_valid_intimacy_partner_trigger = yes }
				save_event_target_as = cr_intimacy_partner
			}
		}
		if = {
			limit = {
				has_character_flag = cr_intimacy_context_rulership
				NOT = { event_target:cr_intimacy_partner = { always = yes } }
			}
			random_courtier = {
				limit = { diplomacy = 6 cr_valid_intimacy_partner_trigger = yes }
				save_event_target_as = cr_intimacy_partner
			}
		}
		if = {
			limit = {
				has_character_flag = cr_intimacy_context_scholarship
				NOT = { event_target:cr_intimacy_partner = { always = yes } }
			}
			random_courtier = {
				limit = { learning = 6 cr_valid_intimacy_partner_trigger = yes }
				save_event_target_as = cr_intimacy_partner
			}
		}
		if = {
			limit = {
				has_character_flag = cr_intimacy_context_theology
				NOT = { event_target:cr_intimacy_partner = { always = yes } }
			}
			random_courtier = {
				limit = { is_priest = yes cr_valid_intimacy_partner_trigger = yes }
				save_event_target_as = cr_intimacy_partner
			}
		}
		if = {
			limit = {
				has_character_flag = cr_intimacy_context_education
				NOT = { event_target:cr_intimacy_partner = { always = yes } }
				NOT = { religion_group = jewish_group }
			}
			random_close_relative = {
				limit = { cr_valid_relative_intimacy_partner_trigger = yes }
				save_event_target_as = cr_intimacy_partner
			}
		}

		if = {
			limit = {
				NOT = { event_target:cr_intimacy_partner = { always = yes } }
				NOT = { has_character_flag = cr_intimacy_context_family }
				NOT = { has_character_flag = cr_intimacy_context_education }
			}
			random_courtier = {
				limit = { cr_valid_intimacy_partner_trigger = yes }
				save_event_target_as = cr_intimacy_partner
			}
		}

		if = {
			limit = { event_target:cr_intimacy_partner = { always = yes } }
			if = { limit = { has_character_flag = cr_intimacy_context_business } long_character_event = { id = cr_intimacy.10 } }
			if = { limit = { has_character_flag = cr_intimacy_context_carousing } long_character_event = { id = cr_intimacy.11 } }
			if = { limit = { has_character_flag = cr_intimacy_context_family } long_character_event = { id = cr_intimacy.12 } }
			if = { limit = { has_character_flag = cr_intimacy_context_hunting } long_character_event = { id = cr_intimacy.13 } }
			if = { limit = { has_character_flag = cr_intimacy_context_intrigue } long_character_event = { id = cr_intimacy.14 } }
			if = { limit = { has_character_flag = cr_intimacy_context_rulership } long_character_event = { id = cr_intimacy.15 } }
			if = { limit = { has_character_flag = cr_intimacy_context_scholarship } long_character_event = { id = cr_intimacy.16 } }
			if = { limit = { has_character_flag = cr_intimacy_context_theology } long_character_event = { id = cr_intimacy.17 } }
			if = { limit = { has_character_flag = cr_intimacy_context_war } long_character_event = { id = cr_intimacy.18 } }
			if = { limit = { has_character_flag = cr_intimacy_context_seduction } long_character_event = { id = cr_intimacy.19 } }
			if = { limit = { has_character_flag = cr_intimacy_context_education } long_character_event = { id = cr_intimacy.20 } }
		}
		else = {
			cr_resolve_nonsexual_ending_trait_effect = yes
			cr_clear_intimacy_context_effect = yes
		}
	}
}

long_character_event = {
	id = cr_intimacy.10
	title = CR_INTIMACY_10_TITLE
	desc = CR_INTIMACY_10_DESC
	picture = GFX_cr_evt_market
	border = GFX_event_long_frame_economy
	is_triggered_only = yes
	option = { name = CR_INTIMACY_10_A trigger = { event_target:cr_intimacy_partner = { cr_valid_intimacy_partner_trigger = yes } } cr_resolve_contextual_intimacy_effect = yes cr_resolve_carnal_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 60 modifier = { factor = 1.5 trait = lustful } modifier = { factor = 0.5 trait = chaste } } }
	option = { name = CR_INTIMACY_10_B cr_resolve_nonsexual_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 40 modifier = { factor = 2 trait = chaste } } }
}

long_character_event = {
	id = cr_intimacy.11
	title = CR_INTIMACY_11_TITLE
	desc = CR_INTIMACY_11_DESC
	picture = GFX_cr_evt_feast
	border = GFX_event_long_frame_diplomacy
	is_triggered_only = yes
	option = { name = CR_INTIMACY_11_A trigger = { event_target:cr_intimacy_partner = { cr_valid_intimacy_partner_trigger = yes } } cr_resolve_contextual_intimacy_effect = yes cr_resolve_carnal_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 60 modifier = { factor = 1.5 trait = hedonist } modifier = { factor = 1.5 trait = lustful } } }
	option = { name = CR_INTIMACY_11_B cr_resolve_nonsexual_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 40 modifier = { factor = 2 trait = chaste } } }
}

long_character_event = {
	id = cr_intimacy.12
	title = CR_INTIMACY_12_TITLE
	desc = CR_INTIMACY_12_DESC
	picture = GFX_cr_evt_family
	border = GFX_event_long_frame_diplomacy
	is_triggered_only = yes
	option = { name = CR_INTIMACY_12_A trigger = { event_target:cr_intimacy_partner = { cr_valid_intimacy_partner_trigger = yes OR = { is_married = ROOT cr_valid_relative_intimacy_partner_trigger = yes } } } cr_resolve_contextual_intimacy_effect = yes cr_resolve_carnal_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 60 modifier = { factor = 1.5 trait = lustful } } }
	option = { name = CR_INTIMACY_12_B cr_resolve_nonsexual_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 40 modifier = { factor = 2 trait = chaste } } }
}

long_character_event = {
	id = cr_intimacy.13
	title = CR_INTIMACY_13_TITLE
	desc = CR_INTIMACY_13_DESC
	picture = GFX_cr_evt_hunt
	border = GFX_event_long_frame_war
	is_triggered_only = yes
	option = { name = CR_INTIMACY_13_A trigger = { event_target:cr_intimacy_partner = { cr_valid_intimacy_partner_trigger = yes } } cr_resolve_contextual_intimacy_effect = yes cr_resolve_carnal_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 60 modifier = { factor = 1.5 trait = hunter } modifier = { factor = 1.5 trait = lustful } } }
	option = { name = CR_INTIMACY_13_B cr_resolve_nonsexual_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 40 modifier = { factor = 2 trait = chaste } } }
}

long_character_event = {
	id = cr_intimacy.14
	title = CR_INTIMACY_14_TITLE
	desc = CR_INTIMACY_14_DESC
	picture = GFX_cr_evt_spymaster
	border = GFX_event_long_frame_intrigue
	is_triggered_only = yes
	option = { name = CR_INTIMACY_14_A trigger = { event_target:cr_intimacy_partner = { cr_valid_intimacy_partner_trigger = yes } } cr_resolve_contextual_intimacy_effect = yes cr_resolve_carnal_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 60 modifier = { factor = 1.5 trait = schemer } modifier = { factor = 1.5 trait = lustful } } }
	option = { name = CR_INTIMACY_14_B cr_resolve_nonsexual_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 40 modifier = { factor = 2 trait = paranoid } } }
}

long_character_event = {
	id = cr_intimacy.15
	title = CR_INTIMACY_15_TITLE
	desc = CR_INTIMACY_15_DESC
	picture = GFX_cr_evt_council
	border = GFX_event_long_frame_diplomacy
	is_triggered_only = yes
	option = { name = CR_INTIMACY_15_A trigger = { event_target:cr_intimacy_partner = { cr_valid_intimacy_partner_trigger = yes } } cr_resolve_contextual_intimacy_effect = yes cr_resolve_carnal_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 60 modifier = { factor = 1.5 trait = gregarious } modifier = { factor = 1.5 trait = lustful } } }
	option = { name = CR_INTIMACY_15_B cr_resolve_nonsexual_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 40 modifier = { factor = 2 trait = shy } } }
}

long_character_event = {
	id = cr_intimacy.16
	title = CR_INTIMACY_16_TITLE
	desc = CR_INTIMACY_16_DESC
	picture = GFX_cr_evt_library
	border = GFX_event_long_frame_diplomacy
	is_triggered_only = yes
	option = { name = CR_INTIMACY_16_A trigger = { event_target:cr_intimacy_partner = { cr_valid_intimacy_partner_trigger = yes } } cr_resolve_contextual_intimacy_effect = yes cr_resolve_carnal_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 60 modifier = { factor = 1.5 trait = scholar } modifier = { factor = 1.5 trait = lustful } } }
	option = { name = CR_INTIMACY_16_B cr_resolve_nonsexual_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 40 modifier = { factor = 2 trait = chaste } } }
}

long_character_event = {
	id = cr_intimacy.17
	title = CR_INTIMACY_17_TITLE
	desc = CR_INTIMACY_17_DESC
	picture = GFX_cr_evt_religious_exultation
	border = GFX_event_long_frame_religion
	is_triggered_only = yes
	option = { name = CR_INTIMACY_17_A trigger = { event_target:cr_intimacy_partner = { cr_valid_intimacy_partner_trigger = yes } } cr_resolve_contextual_intimacy_effect = yes cr_resolve_carnal_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 60 modifier = { factor = 1.5 trait = theologian } modifier = { factor = 1.5 trait = lustful } } }
	option = { name = CR_INTIMACY_17_B cr_resolve_nonsexual_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 40 modifier = { factor = 2 trait = chaste } } }
}

long_character_event = {
	id = cr_intimacy.18
	title = CR_INTIMACY_18_TITLE
	desc = CR_INTIMACY_18_DESC
	picture = GFX_cr_evt_war_planning
	border = GFX_event_long_frame_war
	is_triggered_only = yes
	option = { name = CR_INTIMACY_18_A trigger = { event_target:cr_intimacy_partner = { cr_valid_intimacy_partner_trigger = yes } } cr_resolve_contextual_intimacy_effect = yes cr_resolve_carnal_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 60 modifier = { factor = 1.5 trait = brave } modifier = { factor = 1.5 trait = lustful } } }
	option = { name = CR_INTIMACY_18_B cr_resolve_nonsexual_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 40 modifier = { factor = 2 trait = chaste } } }
}

long_character_event = {
	id = cr_intimacy.19
	title = CR_INTIMACY_19_TITLE
	desc = CR_INTIMACY_19_DESC
	picture = GFX_cr_evt_lovers
	border = GFX_event_long_frame_intrigue
	is_triggered_only = yes
	option = { name = CR_INTIMACY_19_A trigger = { event_target:cr_intimacy_partner = { cr_valid_intimacy_partner_trigger = yes } } cr_resolve_contextual_intimacy_effect = yes cr_resolve_carnal_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 60 modifier = { factor = 1.5 trait = seducer } modifier = { factor = 1.5 trait = seductress } modifier = { factor = 1.5 trait = lustful } } }
	option = { name = CR_INTIMACY_19_B cr_resolve_nonsexual_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 40 modifier = { factor = 2 trait = chaste } } }
}

# Fires only after the graduate is an adult and only when a valid adult blood
# relative exists. The education itself is already complete at this point.
long_character_event = {
	id = cr_intimacy.20
	title = CR_INTIMACY_20_TITLE
	desc = CR_INTIMACY_20_DESC
	picture = GFX_cr_evt_family
	border = GFX_event_long_frame_diplomacy
	is_triggered_only = yes
	option = { name = CR_INTIMACY_20_A trigger = { event_target:cr_intimacy_partner = { cr_valid_relative_intimacy_partner_trigger = yes } } cr_resolve_contextual_intimacy_effect = yes cr_resolve_carnal_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 60 modifier = { factor = 1.5 trait = lustful } } }
	option = { name = CR_INTIMACY_20_B cr_resolve_nonsexual_ending_trait_effect = yes cr_clear_intimacy_context_effect = yes ai_chance = { factor = 40 modifier = { factor = 2 trait = chaste } } }
}
